Skip to content

v.2.4.3#1226

Merged
JackWilb merged 55 commits into
mainfrom
dev
May 28, 2026
Merged

v.2.4.3#1226
JackWilb merged 55 commits into
mainfrom
dev

Conversation

@JackWilb

Copy link
Copy Markdown
Contributor

No description provided.

JackWilb and others added 30 commits March 19, 2026 19:16
Bumps the npm_and_yarn group with 2 updates in the / directory: [uuid](https://github.com/uuidjs/uuid) and [postcss](https://github.com/postcss/postcss).


Updates `uuid` from 11.1.0 to 14.0.0
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](uuidjs/uuid@v11.1.0...v14.0.0)

Updates `postcss` from 8.5.6 to 8.5.12
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.6...8.5.12)

---
updated-dependencies:
- dependency-name: uuid
  dependency-version: 14.0.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: postcss
  dependency-version: 8.5.12
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Speed up study first load by deferring non-critical storage reads
@github-actions

github-actions Bot commented May 14, 2026

Copy link
Copy Markdown

🪓 PR closed, deleted preview.

Copilot AI and others added 9 commits May 14, 2026 06:53
- Remove unnecessary useMemo calls for trivial config value reads
  in NextButton (nextButtonDisableTime, nextButtonEnableTime,
  nextOnEnter, previousButtonText)
- Remove unnecessary useMemo for modes.dataCollectionEnabled
  destructuring in useNextStep
- Fix consistent-return lint error by unconditionally returning
  cleanup function in nextOnEnter useEffect
- Fix prefer-destructuring lint warning in useNextStep
- Use correct tab name 'Tests' instead of 'Test Studies'
- Activate the Tests tab before opening the study
- Handle custom studyEndMsg instead of relying on default message
- Simplify study card locator to avoid strict mode violation
…ions-component

Add component-level auto-advance timeout controls and warning configuration
* moving provenance

* ensuring fallback works

* Persist provenance as separate assets

* Add provenance bulk download export

* Ignore coverage output

* Fix type error in test

---------

Co-authored-by: Jack Wilburn <jackwilburn@tutanota.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates ReVISit to v2.4.3, focusing on (1) component-level auto-advance timeouts, (2) storing Trrack provenance graphs as separate per-task assets (instead of inline on StoredAnswer), and (3) improving recording permission/error UX plus some storage-engine initialization/resume robustness.

Changes:

  • Add component-level auto-advance timeout + warning message support (schema/types, UI, tests, and a demo test study).
  • Move provenance persistence to a dedicated storage namespace (provenance/) with download support and analysis/replay compatibility with legacy inline provenance.
  • Improve recording UX/error states and refine storage engine behaviors (config write short-circuit, participant metadata update, deferred initial persistence, etc.), with expanded unit/e2e tests.

Reviewed changes

Copilot reviewed 53 out of 55 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
yarn.lock Locks updated deps (jsdom, postcss, uuid, etc.).
tests/test-component-timeout.spec.ts Playwright test covering auto-advance warning + navigation.
tests/replay-current-trial-dynamic.spec.ts Updates replay routing expectations (pathname-driven).
src/utils/useDisableBrowserBack.tsx Disables back-button only outside analysis; adds cleanup.
src/utils/useDisableBrowserBack.spec.tsx Unit test for analysis replay exemption.
src/utils/handleDownloadFiles.ts Adds provenance ZIP download flow (and legacy fallback).
src/utils/handleDownloadFiles.provenance.spec.ts Tests provenance ZIP generation and filenames.
src/store/types.ts Introduces StoredProvenance, AlertModalState; removes inline provenance on StoredAnswer.
src/store/store.tsx Updates store creator/types; adds setMetadata; adjusts alert modal typing.
src/store/provenance.ts New helpers to normalize/strip/split legacy inline provenance.
src/store/provenance.spec.ts Tests legacy provenance stripping/normalization behaviors.
src/store/hooks/useRecording.ts Adds audioRecordingError, better permission handling/status reporting.
src/store/hooks/usePreviousStep.ts Improves back-navigation through dynamic blocks; analysis-safe behavior.
src/store/hooks/usePreviousStep.spec.tsx Tests analysis replay navigation + dynamic block skipping behavior.
src/store/hooks/useNextStep.ts Saves provenance separately; excludes timed-out answers from skip logic.
src/store/hooks/useNextStep.spec.tsx Adds tests for query param preservation + timed-out skip behavior + provenance saving.
src/store/hooks/useAuth.tsx Allows study routes to render while auth status is determining (non-analysis).
src/storage/types.ts Updates docs to reflect separate provenance storage.
src/storage/tests/highLevel.spec.ts Adds tests for config write short-circuit, peek participant ID, deferred writes, metadata updates, provenance asset behavior, etc.
src/storage/engines/utils/participantDataRecovery.spec.ts Updates fixtures after removing inline provenance from StoredAnswer.
src/storage/engines/types.ts Adds provenance asset APIs + modes/stage bootstrap; config write short-circuit; deferred initial persistence; metadata updates.
src/storage/engines/FirebaseStorageEngine.ts Uses getBlob for storage object fetch instead of fetch-by-URL.
src/routes/utils.tsx Removes currentTrial query-driven routing; adds useCurrentIdentifier for timer reset.
src/public/libraries/screen-recording/assets/ScreenRecording.tsx Adjusts permission page to reflect audio/screen recording flags and waveform conditions.
src/public/libraries/mic-check/assets/AudioTest.tsx Improves mic permission instructions and layout; ensures recordAudio: true.
src/parser/types.ts Adds auto-advance timeout/warning fields to component types.
src/parser/StudyConfigSchema.json Adds schema fields for auto-advance timeout/warning.
src/parser/parser.spec.ts Tests schema acceptance of new auto-advance fields.
src/parser/LibraryConfigSchema.json Adds schema fields for auto-advance timeout/warning (library configs).
src/GlobalConfigParser.tsx Refactors home route; adds cancellation guards for async config loading.
src/components/Shell.tsx Improves startup flow, metadata updates, deferred completion check, and initial alert behavior.
src/components/nextButtonTimeout.ts New helper for computing/formatting auto-advance warnings.
src/components/nextButtonTimeout.spec.ts Unit tests for warning timing and formatting.
src/components/NextButton.tsx Implements auto-advance + warning UI; resets timers per identifier.
src/components/NextButton.spec.tsx Tests auto-advance reset when identifier changes.
src/components/interface/RecordingAudioWaveform.tsx Removes inline error UI; relies on higher-level error display.
src/components/interface/AppHeader.tsx Adds richer recording status UI (pending/denied/recording, screen/audio labels).
src/components/interface/AppHeader.spec.tsx Tests header status rendering for mic/screen permission states.
src/components/downloader/DownloadButtons.tsx Adds provenance ZIP download button + loading state.
src/components/audioAnalysis/TaskProvenanceTimeline.tsx Switches timeline input to StoredProvenance (asset-based).
src/components/audioAnalysis/AudioProvenanceVis.tsx Fetches provenance assets with legacy fallback; removes currentTrial param manipulation.
src/analysis/individualStudy/thinkAloud/ThinkAloudFooter.tsx Loads per-task provenance assets; refactors task navigation.
src/analysis/individualStudy/thinkAloud/ThinkAloudFooter.spec.ts Tests task navigation target creation (replay vs analysis tagging).
src/analysis/individualStudy/thinkAloud/ThinkAloudAnalysis.tsx Stops clearing currentTrial on participant selection.
src/analysis/individualStudy/thinkAloud/taskNavigation.ts New helper to build replay/tagging navigation targets.
src/analysis/individualStudy/summary/utils.test.ts Updates fixtures after removing inline provenance from StoredAnswer.
src/analysis/individualStudy/replay/SingleTask.tsx Adds screen-recording icon support in replay list.
src/analysis/individualStudy/replay/AllTasksTimeline.tsx Wires hasScreenRecording into replay task items.
public/test-component-timeout/config.json Adds a test study config demonstrating auto-advance + warning.
public/libraries/screen-recording/config.json Updates library component flags (recordScreen) and formatting.
public/libraries/mic-check/config.json Ensures mic-check library requests audio recording.
public/libraries/calvi/config.json Fixes a library component description.
public/global.json Registers the new component-timeout test study.
package.json Bumps uuid and adds jsdom for vitest jsdom environment.
.gitignore Ignores coverage/.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/storage/engines/types.ts
Comment thread src/components/Shell.tsx Outdated
Comment thread src/store/hooks/useNextStep.ts
@JackWilb JackWilb merged commit ced591b into main May 28, 2026
5 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants